package com.zhouxiaoge.proxy.liudehua;

import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;

/**
 * @author 周明阳
 * mail:gqzmy@outlook.com
 * 时间:2018-03-12 10:41
 */

public class LiuDeHuaProxy {

    private Person ldh = new LiuDeHuaPersonImpl();

    public Person getProxy() {

        return (Person) Proxy.newProxyInstance(LiuDeHuaProxy.class.getClassLoader(), ldh.getClass().getInterfaces(), new InvocationHandler() {
            @Override
            public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {

                if (method.getName().equalsIgnoreCase("sing")) {
                    System.out.println("我是他的经纪人，要找他唱歌需要先给十万块钱！！！");
                    return method.invoke(ldh, args);
                }
                if (method.getName().equalsIgnoreCase("dance")) {
                    System.out.println("我是他的经纪人，要找他跳舞需要先给四十五块钱！！");
                    return method.invoke(ldh, args);
                }
                return null;
            }
        });
    }
}
